package com.cloud.api.domain.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.io.Serializable;

/**
 * <p>
 * 
 * </p>
 *
 * @author haohaibo
 * @since 2023-12-25
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("t_oil_model_information")
@Schema(name = "OilModelInformation", description = "")
public class OilModelInformation implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "车型id")
    @TableField("id")
    @NotEmpty(message = "{validation.common.id}")
    private String id;

    @Schema(description = "公告型号")
    @TableField("notice_model")
    @NotEmpty(message = "{validation.model.noticeModel}")
    private String noticeModel;

    @Schema(description = "图片")
    @TableField("picture_url")
    @NotEmpty(message = "{validation.model.url}")
    private String pictureUrl;

    @Schema(description = "车辆属性")
    @TableField("vehicle_attribute")
    @NotEmpty(message = "{validation.model.vehicleAttribute}")
    @Size(max = 30 ,message = "{validation.common.maxSize}")
    private String vehicleAttribute;

    @Schema(description = "动力方式")
    @TableField("power_mode")
    @NotNull(message = "{validation.model.powerMode}")
    private Integer powerMode;

    @Schema(description = "续航里程(km)")
    @TableField("mileage")
    @NotEmpty(message = "{validation.model.mileage}")
    @Size(max = 30 ,message = "{validation.common.maxSize}")
    private String mileage;

    @Schema(description = "车辆级别")
    @TableField("vehicle_level")
    private Integer vehicleLevel;

    @Schema(description = "颜色")
    @TableField("colour")
    @Size(min = 1,max = 30 ,message = "{validation.common.size1}")
    private String colour;

    @Schema(description = "外廓尺寸长宽高 mm")
    @TableField("outer_dimensions")
    @NotEmpty(message = "{validation.model.outerDimensions}")
    @Size(min = 1,max = 30 ,message = "{validation.common.size1}")
    private String outerDimensions;

    @Schema(description = "排放依据标准")
    @TableField("emission_standard")
    @Size(min = 1,max = 30 ,message = "{validation.common.size1}")
    private String emissionStandard;

    @Schema(description = "货厢栏板内尺寸 长宽高 mm")
    @TableField("cargo_board_dimensions")
    @NotEmpty(message = "{validation.model.cargoBoardDimensions}")
    @Size(min = 1,max = 30 ,message = "{validation.common.size1}")
    private String cargoBoardDimensions;

    @Schema(description = "排放水平")
    @TableField("emission_level")
    @Size(min = 1,max = 30 ,message = "{validation.common.size1}")
    private String emissionLevel;

    @Schema(description = "发动机生产企业")
    @TableField("engine_manufacturer")
    @Size(min = 1,max = 30 ,message = "{validation.common.size1}")
    private String engineManufacturer;

    @Schema(description = "发动机排量")
    @TableField("engine_capacity")
    @Size(min = 1,max = 30 ,message = "{validation.common.size1}")
    private String engineCapacity;

    @Schema(description = "发动机型号")
    @TableField("engine_model")
    @Size(min = 1,max = 30 ,message = "{validation.common.size1}")
    private String engineModel;

    @Schema(description = "发动机功率")
    @TableField("engine_power")
    @Size(min = 1,max = 30 ,message = "{validation.common.size1}")
    private String enginePower;

    @Schema(description = "额定载质量")
    @TableField("rated_load")
    @Size(min = 1,max = 30 ,message = "{validation.common.size1}")
    private String ratedLoad;

    @Schema(description = "总质量")
    @TableField("total_mass")
    @Size(min = 1,max = 30 ,message = "{validation.common.size1}")
    private String totalMass;

    @Schema(description = "整备质量")
    @TableField("curb_mass")
    @Size(min = 1,max = 30 ,message = "{validation.common.size1}")
    private String curbMass;
}
